/**
 * 单例模式
 * 1. 系统中被唯一使用
 * 2. 一个类只有一个实例
 * 示例：登录框、购物车、jQuery的 $、vuex、reduce的 store
 */
class SingleObject {
  login() {
    console.log("login...");
  }
}

SingleObject.getInstance = (function () {
  let instance;
  return function () {
    if (!instance) {
      instance = new SingleObject();
    }
    return instance;
  };
})();

// 测试
let obj1 = SingleObject.getInstance();
obj1.login();
let obj2 = SingleObject.getInstance();
obj2.login();
console.log(`obj1 === obj2:`, obj1 === obj2);
